// Talapatram.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "Talapatram.h"
#include "TalapatramDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CTalapatramApp

BEGIN_MESSAGE_MAP(CTalapatramApp, CWinApp)
	ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()


// CTalapatramApp construction

CTalapatramApp::CTalapatramApp()
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance
}


// The one and only CTalapatramApp object

CTalapatramApp theApp;


// CTalapatramApp initialization

BOOL CTalapatramApp::InitInstance()
{
	// InitCommonControls() is required on Windows XP if an application
	// manifest specifies use of ComCtl32.dll version 6 or later to enable
	// visual styles.  Otherwise, any window creation will fail.
	InitCommonControls();

	CWinApp::InitInstance();

	AfxEnableControlContainer();

	FILE *fp=_wfopen(_T("LICENSE-DONT-DELETE.txt"), _T("rb"));
	if(fp==NULL)
	{
		MessageBox(NULL, _T("Oi... Your License file is missing! Contact my author at ramavorray@gmail.com with details."), _T("License Error"), MB_OK);
		return -1;
	}

	unsigned int licsNum=0;
	fread(&licsNum, sizeof(unsigned int), 1, fp);

	//license number is 673673688
	//just an arbitrary number that is written in binary mode into a text file called 'LICENSE-DONT-DELETE.txt'
	//this file will be hidden in the folder where executable file is there.
	if(licsNum!=673673688)
	{
		fclose(fp);
		MessageBox(NULL, _T("Ppcch... It seems you messed up my License? Contact author at ramavorray@gmail.com with details."), _T("License Error"), MB_OK);
		return -1;
	}
	else
		fclose(fp);

	//resolution should be 1152 width and 768 height minimum
	if(GetSystemMetrics(SM_CXSCREEN)<1152 || GetSystemMetrics(SM_CYSCREEN)<768)
	{
		if(MessageBox(NULL, _T("I need display resolution of atleast 1152 X 768. Shall I try changing your Display Resolution?"), _T("Settings not compatible"), MB_YESNO)==IDYES)
		{
			DEVMODE dispMode;
			EnumDisplaySettings(NULL, ENUM_REGISTRY_SETTINGS, &dispMode);
			dispMode.dmPelsWidth=1152;
			dispMode.dmPelsHeight=768;
			dispMode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
			if(ChangeDisplaySettings(&dispMode, CDS_UPDATEREGISTRY)!=DISP_CHANGE_SUCCESSFUL)
				MessageBox(NULL, _T("Sorry... It has not been possible for me to change your display resolution. Your display resolution should be atleast 1152 pixels wide and 768 pixels high. Please change settings manually."), _T("Please change settings"), MB_OK);
		}
	}

	// Standard initialization
	// If you are not using these features and wish to reduce the size
	// of your final executable, you should remove from the following
	// the specific initialization routines you do not need
	// Change the registry key under which our settings are stored
	// TODO: You should modify this string to be something appropriate
	// such as the name of your company or organization
	SetRegistryKey(_T("Talapatram, Vorray Inc."));

	CTalapatramDlg dlg;
	m_pMainWnd = &dlg;
	INT_PTR nResponse = dlg.DoModal();
	if (nResponse == IDOK)
	{
		// TODO: Place code here to handle when the dialog is
		//  dismissed with OK
	}
	else if (nResponse == IDCANCEL)
	{
		// TODO: Place code here to handle when the dialog is
		//  dismissed with Cancel
	}

	// Since the dialog has been closed, return FALSE so that we exit the
	//  application, rather than start the application's message pump.
	return FALSE;
}
